mensajerosHash = {};

var selectMenu = function(menu, index) {

    $("#cont").show();

    if ($('#link_open').hasClass("close-profile-link")) {
        $("#open_span").addClass("close_span").removeClass("open_span");
        $("#profile").addClass("profile_closed");
        $("#link_open").addClass("clooses");
        $("#cont").removeClass("none");
    }

    var tab_id = index;
    $(".inner ul li a").removeClass("active");
    $("#tabs .active").removeClass("active");
    $(menu).addClass("active");
    $("#tabs div").stop(false, false).hide();
    $("#tab" + tab_id).stop(false, false).show();
    $("#tab" + tab_id).addClass("active");

    return false;
};

var itemSelected = function(obj) {
    var link = $(obj);
    var id = link.attr('id');

    link.addClass('activepoint');

    var form = $('#mensajero_form .modal-body form');

    if (id === "mensajeroNuevo") {
        $('#mensajero_form .modal-header h4').text("Mensajero Nuevo");
    } else {
        var mensajero = mensajerosHash[id];
        fillForm(form, mensajero);
    }

    $('#mensajero_form').modal();
};

var fillForm = function(form, mensajero) {

    if (mensajero.nombre) {
        form.find('input#inputNombre').val(mensajero.nombre);
        form.find('input#inputNombre').text(mensajero.nombre);
    }

    if (mensajero.cedula) {
        form.find('input#inputCedula').val(mensajero.cedula);
        form.find('input#inputCedula').text(mensajero.cedula);
    }

    if (mensajero.activo) {
        form.find('input#inputActivo').attr('checked', 'checked');
    } else {
        form.find('input#inputActivo').attr('checked', null);
    }

    if (mensajero.telefono) {
        form.find('input#inputTelefono').val(mensajero.telefono);
        form.find('input#inputTelefono').text(mensajero.telefono);
    } else {
        form.find('input#inputTelefono').attr('placeholder', 777777);
        form.find('input#inputTelefono').val(null);
    }
};

var fillMensajero = function(form, mensajero) {
    
    if(!mensajero)
        mensajero = {};

    var nombre = form.find('input#inputNombre').val();
    var cedula = form.find('input#inputCedula').val();
    var activo = form.find('input#inputActivo').attr('checked');
    var telefono = form.find('input#inputTelefono').val();

    if (nombre)
        mensajero.nombre = nombre;
    if (cedula)
        mensajero.cedula = cedula;
    mensajero.activo = activo ? true : false;
    if (telefono)
        mensajero.telefono = telefono;

    return mensajero;
};

var login = function(user, login) {

};

getMensajeros = function() {

    $.ajax({
        url: "/resources/webresources/mensajero",
        type: "GET",
        dataType: "json",
        success: function(data) {
            renderMensajeros(data);
        }
    });
};

updateMensajero = function(mensajero) {

    var status = true;

    $.ajax({
        url: "/resources/webresources/mensajero/" + mensajero.id,
        type: "PUT",
        data: JSON.stringify(mensajero),
        contentType: "application/json"
    }).error(function() {
        status = false;
    });

    return status;
};

createMensajero = function(mensajero) {

    var status = true;
    mensajero.id = 10000;

    $.ajax({
        url: "/resources/webresources/mensajero/" + mensajero.id,
        type: "POST",
        data: JSON.stringify(mensajero),
        contentType: "application/json; charset=utf-8"
    }).error(function() {
        status = false;
    });

    return status;
};

deleteMensajero = function(mensajero) {

    var status = true;

    $.ajax({
        url: "/resources/webresources/mensajero/" + mensajero.id,
        type: "DELETE"
    }).error(function() {
        status = false;
    });

    return status;
};

var renderMensajero = function(tab, mensajero) {

    if (!mensajero.id)
        return;

    var id = "mensajero_" + mensajero.id;
    var element = '<li><a id="' + id + '" >' + mensajero.nombre + '</a></li>';

    tab.append(element);

    var link = tab.find('li>a#' + id);

    link.click(function() {
        itemSelected(this);
    });

    mensajerosHash[id] = mensajero;

};

var renderMensajeros = function(mensajeros) {

    tab = $('.tab ul');
    tab.empty();

    tab.append('<li><a id="mensajeroNuevo" >Nuevo</a></li>');
    var mensajeroNuevo = tab.find('li>a#mensajeroNuevo');

    mensajeroNuevo.click(function() {
        itemSelected(this);
    });

    for (var i = 0; i < mensajeros.length; i++) {

        var mensajero = mensajeros[i];

        renderMensajero(tab, mensajero);
    }

};

$(document).ready(function() {
    $(".inner ul li a").each(function(i) {
        $(".inner ul li a:eq(" + i + ")").click(function() {
            return selectMenu(this, i + 1);
        });
    });

    $('#link_open').on('click', function() {
        if ($('#link_open').hasClass("clooses")) {

            $("#cont").hide();

            tabSelected = $(".inner ul li a.active");
            tabSelected.removeClass("active");

            $("#open_span").removeClass("close_span").addClass("open_span");
            $("#profile").removeClass("profile_closed");
            $("#link_open").removeClass("clooses");
            $("#cont").addClass("none");
        } else {

            $("#cont").show();

            tabSelected.addClass("active");

            $("#open_span").addClass("close_span").removeClass("open_span");
            $("#profile").addClass("profile_closed");
            $("#link_open").addClass("clooses");
            $("#cont").removeClass("none");
        }
    });

    $('#map_open').on('click', function() {
        $("#cont").addClass("none");
        $("#Show_cont").removeClass("none");

    });

    $(function() {
        $("#owl-demo, #myguest").owlCarousel({
            items: 6,
            itemsDesktop: [1000, 5],
            itemsDesktopSmall: [900, 6],
            itemsTablet: [600, 2],
            itemsMobile: false
        });
    });
    
    $('#filter').on('keyup change', function() {

        var text = $(this).val();

        $("#tabs .active ul li a").each(
                function(i) {
                    var entry = $("#tabs .active ul li a:eq(" + i + ")");

                    var value = entry.text();

                    var match = value.match(text);

                    if (match) {
                        entry.show();
                    } else {
                        entry.hide();
                    }

                }
        );
    });

    $('#mensajero_form').on('hidden.bs.modal', function() {
        $(".tab a.activepoint").removeClass('activepoint');
    })

    $('#mensajero_form button#save').click(function() {

        var link = $(".tab a.activepoint");
        var id = link.attr('id');

        var mensajero = mensajerosHash[id];

        var form = $('#mensajero_form .modal-body form');
        
        mensajero = fillMensajero(form, mensajero);

        if (id === "mensajeroNuevo") {
            
            if (createMensajero(mensajero)) {
                renderMensajero($('.tab ul'), mensajero);
                link.removeClass('activepoint');
                $('#mensajero_form').modal('hide');
            }else{
                console.log("falló");
            }
        } else {

            if (updateMensajero(mensajero)) {

                link.text(mensajero.nombre);
                mensajerosHash[id] = mensajero;

                link.removeClass('activepoint');

                $('#mensajero_form').modal('hide');
            } else {
                console.log("falló");
            }


        }
    });

    getMensajeros();
});

var tabSelected = 0;

$(window).load(function() {
    initialize();
});